package com.shop.coupon.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "sms_coupon")
public class Coupon {
    @TableId(type = IdType.AUTO)
    private Long id; // 优惠券ID

    private Integer couponType; // 优惠券类型[0->全场赠券；1->会员赠券；2->购物赠券；3->注册赠券]

    private String couponImg; // 优惠券图片

    private String couponName; // 优惠券名称

    private Integer num; // 数量

    private BigDecimal amount; // 金额

    private Integer perLimit; // 每人限领张数

    private BigDecimal minPoint; // 使用门槛

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startTime; // 开始时间

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endTime; // 结束时间

    private String note; // 备注

    private Integer publishCount; // 发行数量

    private Integer useCount; // 已使用数量

    private Integer receiveCount; // 领取数量

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date enableStartTime; // 可以领取的开始日期

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date enableEndTime; // 可以领取的结束日期

    private String code; // 优惠码

    private Integer memberLevel; // 可以领取的会员等级[0->不限等级，其他-对应等级]

    private Integer publish; // 发布状态[0-未发布，1-已发布]

    private Integer useType; //优惠券使用类型 0全场通用 1指定分类

    private String createBy;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    private String updateBy;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

}
